Technical Field of the Invention
This invention relates generally to computer networks and more particularly to dispersing error encoded data.
Description of Related Art
Computing devices are known to communicate data, process data, and/or store data. Such computing devices range from wireless smart phones, laptops, tablets, personal computers (PC), work stations, and video game devices, to data centers that support millions of web searches, stock trades, or on-line purchases every day. In general, a computing device includes a central processing unit (CPU), a memory system, user input/output interfaces, peripheral device interfaces, and an interconnecting bus structure.
As is further known, a computer may effectively extend its CPU by using “cloud computing” to perform one or more computing functions (e.g., a service, an application, an algorithm, an arithmetic logic function, etc.) on behalf of the computer. Further, for large services, applications, and/or functions, cloud computing may be performed by multiple cloud computing resources in a distributed manner to improve the response time for completion of the service, application, and/or function. For example, Hadoop is an open source software framework that supports distributed applications enabling application execution by thousands of computers.
In addition to cloud computing, a computer may use “cloud storage” as part of its memory system. As is known, cloud storage enables a user, via its computer, to store files, applications, etc. on an Internet storage system. The Internet storage system may include a RAID (redundant array of independent disks) system and/or a dispersed storage system that uses an error correction scheme to encode data for storage.
As is known, indexing is the process of capturing relevant data associated with a record (e.g., a keyword). Metadata that is captured may be used to index the record in a database table to make retrieval easier. For example, the metadata may include a date and timestamp of when a document was modified or created.
To aid in quickly and efficiently finding stored data, a storage system includes indexing. Indexing uses keys associated with the stored data to find stored data with like attributes. For example, a key of “last name=Jones”, limits a search through the storage system for records with the last name of Jones.
Indexing is a data structure that is implemented using one of a variety of architectures (e.g., non-clustered, clustered, cluster) and using one of a variety of types (e.g., bitmap, dense, sparse, reverse). An indexing data structure is an independent data from the stored data and metadata associated with the stored data.